{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Example of the mixing_sp() function \n",
    "\n",
    "Author: Charles Le Losq\n",
    "\n",
    "This function allows one to mix two endmembers spectra, $ref1$ and $ref2$, to an observed one $obs$:\n",
    "\n",
    "$obs = ref1 * F1 + ref2 * (1-F1)$ .\n",
    "\n",
    "The calculation is done with performing least absolute regression, which presents advantages compared to least squares to fit problems with outliers as well as non-Gaussian character (see [wikipedia](https://en.wikipedia.org/wiki/Least_absolute_deviations) for instance)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import rampy as rp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Problem setting\n",
    "\n",
    "We will setup a simple problem in which we mix two Gaussian peaks in different ratios. The code below is going to create those peaks, and to plot them for reference."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f6cbcc0d6d8>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xdc1WX/x/HXxZ6CTAcgqODeKOLeu8xS0zTNMqu77l97z3vU3bjb2TDLUaaNu7JMMzX3xo0bERAHIAgyZF+/Py5MLQcC3/PlnHM9Hw8eBw5nvI8gn3NtIaVE0zRNs18OZgfQNE3TzKULgaZpmp3ThUDTNM3O6UKgaZpm53Qh0DRNs3O6EGiaptk5XQg0TdPsnC4EmqZpdk4XAk3TNDvnZHaAyggICJDh4eFmx9A0TbMq27ZtOy2lDLzW7ayiEISHhxMXF2d2DE3TNKsihEiuzO1015CmaZqd04VA0zTNzulCoGmaZuesYoxA0zStOkpKSkhNTaWwsNDsKIZwc3MjJCQEZ2fnKt1fFwJN02xeamoq3t7ehIeHI4QwO06NklKSmZlJamoqERERVXoM3TWkaZrNKywsxN/f3+aKAIAQAn9//2q1dnQh0DTNLthiETivuq9NFwJNsybnzsC22VBim33dmjl0IdA0a1FaDAsmws8Pwvd3Q3mZ2Yk0A6xdu5ZWrVrRvn17zp07x5AhQ/D19WXEiBGGPadhhUAI0UwIsfOij7NCiIeEEH5CiGVCiMMVl3WNyqBpNkNKWPwoJK+DliNh/0/wy6Pqes3qSCkpLy+/7PfmzZvH008/zc6dO3F3d+fxxx/niy++MDSPYYVASnlQStleStke6AQUAD8ATwErpJSRwIqKrzVNu5pNH8L2udDzURg7F3o8AttmwcpXzE6mVVJSUhLNmjVj0qRJtG7dmi+++ILY2Fg6duzImDFjyMvLY+bMmXzzzTc8//zzTJgwAYD+/fvj7e1taDZLTR/tDxyRUiYLIUYCfSqunwOsAp60UA5Nsz7JG+G356DFDdD3OXVd/xcgPwPWvA5+EdD+NnMzWpF//LyXfSfO1uhjtmxQhxdvaHXN2x0+fJg5c+bQtGlTbr75ZpYvX46npyevvfYab731Fi+88ALr1q1jxIgRjB49ukYzXo2lCsE4YH7F58FSypMVn58Cgi93ByHENGAaQFhYmOEBNa3W2jYLXOvAqE/AoaIRLwSMeAfOJMGiR6B+Owiu+EN0OgF+fRJ6PwmhXUyLrf1Vo0aN6Nq1K4sWLWLfvn10794dgOLiYmJjY03LZXghEEK4ADcCT//5e1JKKYS4bCenlHIGMAMgOjpad4Rq9qmkEA4shlYjwcXz0u85OsEtn8EnPeGbSTBtFaTtg/nj4FwWFOXBXUvNSF2rVeadu1E8PdXPUErJwIEDmT9//jXuYRmWmDU0FNgupUyr+DpNCFEfoOIy3QIZNM06JSyH4lxodfPlv+8dDKM/h6xE+PIWmHsjuPtC7ANwbBMkb7BsXq1Sunbtyvr160lISAAgPz+fQ4cOmZbHEoVgPBe6hQB+AiZXfD4ZWGiBDJpmnfb+AO5+ENH7yrcJ76HGDI5thuDWcNcy6PcceAbC2jcvf5/yMvjp/2Bn7XhHam8CAwOZPXs248ePp23btsTGxnLgwIHL3rZnz56MGTOGFStWEBISwtKlNd/KE9LA6WdCCE8gBWgspcypuM4f+AYIA5KBsVLKrKs9TnR0tNQH02h2p7gA3mgKbcfADe9e/bbl5XB0FYR2BRcPdd3at2DFP2DaamjQ/tLb//5vWPOGGlu4Z40h8WuT/fv306JFC7NjGOpyr1EIsU1KGX2t+xraIpBS5ksp/c8XgYrrMqWU/aWUkVLKAdcqAppmtxKWQUn+lbuFLubgAE36XSgCAJ3vAlcfWPfWpbc9+KsqAh7+cHI35GfWbG7N6uiVxZpWW8V/r7p3wntU7f5uPtDlbtj3k/rITYOso/DDNKjXFsbMBiQk2X6LQLs6vQ21ptVGRXlwaCl0mAAOjlV/nK73qemn39yuvnZwUrOPxs4Fn1A1LTVxNbQaVTO5NaukC4Gm1SaFZyFpHcT/D0rPVa5b6Go8A+Dv2+HkLkjfDxkHoPUtahEaqNZG4qpqx9asmy4EmlZbbPxQrSCWZeDkDu3GQ1gNLDJy94XGvdXHnzXuAwcXq4VpdcOr/1yaVdKFQNNqg5O7YNnz0KQv9HgYQjqDk6vxz9u4j7pMXA2dwo1/Pq1W0oPFmmYJe76DJU/B7m/V4q+Lp22XFsEP94JHANz8qequsUQRAAiIAu/6unuoFrl4G+qNGzcSGxtLq1ataNu2LV9//bUhz6lbBJpmCctfgpxjF772j1R7AbW+We0gmr4PbvsWPPwsm0sItVgtYZlai+Cg3xtagpQSKSUOl/n3Pr8N9cSJEzl06BBz584lMjKSEydO0KlTJwYPHoyvr2+N5tE/dU0z2tkTqggM+jfcuw6GvwmOLvD9VJgeAxveg46TIGqQOfka94GCTEjfa87z24mqbEMdFRVFZGQkAA0aNCAoKIiMjIwaz6ZbBJpmtGNb1GVYN6jXRn10uhP2/QirXoW6ETDYxHMFzg8iJ65S2Wzdkqfg1J6afcx6bWDoq9e8WXW2od6yZQvFxcU0adKkZrOjC4GmGS91Kzi5XfpH1sFBdQu1GqX2/XE08b9inQYQ2ALiZkGHieCuDw00SlW3oT558iS33347c+bMuWx3UnXpQqBpRju2GRp0ACeXv35PCHOLwHnD34S5I9V21hP+d/mstqIS79yNUpVtqM+ePcvw4cN5+eWX6dq1qyG59BiBphmppBBO7FTTQWuz8O4w8gM4ugZ+eVifhWywym5DXVxczKhRo5g0aZKhJ5bpQqBpRjq5C8pLIDTG7CTX1m4c9HoCdnwJa/5rdhqbVtltqL/55hvWrFnD7Nmzad++Pe3bt2fnzp01nsfQbahrit6GWrNa699TC8UeOwxeQWanuTYp1ZqG3QtUUej7jOq+snJ6G+qrqwWdk5pmw1K3qK0brKEIgPqjf9OHatxizetQlKtmNOn1BTZNFwJNM4qUaupo4z5mJ7k+Do5ww/vg4g2bP1LFYch/zE6lGUiXeU0zSnYK5KXV/oHiy3FwUH/824xV00rLSsxOVG3W0A1eVdV9bboQaJpRzi8ks4aB4ssRApoNVdthn9ptdppqcXNzIzMz0yaLgZSSzMxM3NzcqvwYhnYNCSF8gZlAa0ACdwIHga+BcCAJdWbxGSNzaJopjm0GZ08Iaml2kqoLq5i3nrIZGnYyN0s1hISEkJqaasj2DLWBm5sbISEhVb6/0WME7wK/SilHCyFcAA/gGWCFlPJVIcRTwFPAkwbn0DTLO7YJGnasHQvGqqpOA/AJU68l9m9mp6kyZ2dnIiIizI5RaxnWNSSE8AF6AZ8BSCmLpZTZwEhgTsXN5gA3GZVB00xz9oTaz6ZJP7OTVF9YjGoR2GC3iqYYOUYQAWQAs4QQO4QQM4UQnkCwlPJkxW1OAcGXu7MQYpoQIk4IEWerzTnNhh36VV02G2ZujpoQGgN5pyA72ewkmkGMLAROQEfgIyllByAf1Q30B6lGbi77NkNKOUNKGS2ljA4MDDQwpqYZ4OAStatoYDOzk1TfxeMEmk0yshCkAqlSyvO/Pd+hCkOaEKI+QMVluoEZNM3yivLU0Y/NhtnEqlyCWoJrHUjZaHYSzSCGFQIp5SngmBDi/Fui/sA+4CdgcsV1k4GFRmXQNFMkroSyIjX10hY4OKq1EMd0i8BWGT2d4e/AvIoZQ4nAFFTx+UYIcReQDIw1OIOmWdbBJeDme6FLxRaEdVVHap7LBveaPSZRM5+hhUBKuRO43IZH/Y18Xk0zTXmZGiiOHASOzmanqTmhMYBUh+xEDjQ7jVbD9MpiTatJqVvV+b+20i10Xkg0CEdI2WR2Es0AVrzSRdNqASlh6TOAgCZ94fAycHCGpjbW6HXxVEdt6nECm6QLgaZVR8pG2PQhIGDTdHVd477g5mNqLEM06Qvr3oZNH0PXe81Oo9UgXQg0rTq2zVZTKx/cBSd3QvIG2+sWOq/3U3D6MPz6JJzLgj5P28b0WE0XAk2rsoIs2PsjdJwEHn5qOwlb2FLiSpzdYMwc+PlBWP2aOrRGn1NgE/RgsaZV1a4Far1ApzvMTmI5jk7qkPtOd6gusTN62wlboAuBplWFlLBtllpoVa+12WksSwjo9n/q84OLzc2i1QhdCDStKlI2wulD9tUauJh/EwhsAQd+MTuJVgN0IdC0qoibBa4+0Opms5OYp/lwSF6vxko0q6YLgaZdr7MnYd9CaDsWXDzMTmOe5sNBlsOhpWYn0apJFwJNu14rX1Z/AGPvNzuJuRp0AO8GcGCR2Um0atKFQNOuR9o+2DkPukwDPzs/+lAIaD4MElZAcYHZabRq0IVA067HshfA1Rt6PWZ2ktqh+XAoPQeJq8xOolWDLgSaVlmJqyBhGfR8TC0g06BRD7Wy+qCePWTNdCHQtMooL4ffngefMNUtpClOLmrL7YNLoKzU7DRaFelCoGmVcXIHnNoNvZ9QWy1oF7S8UW29nbjS7CRaFelCoGmVcX4f/qYDzM1RG0UNAXc/2PGl2Um0KtKFQNMqI2Uj+DaCOvXNTlL7OLmqNRUHF+vFZVbK0EIghEgSQuwRQuwUQsRVXOcnhFgmhDhccVnXyAya/fnHz3sZ+NZq5m9Joai0rPoPKKVqEYTFVv+xbFX7CVBWDHu+MzuJVgWWaBH0lVK2l1KeP7v4KWCFlDISWFHxtaZdk5SSbclZpJ0tvOJt4pKymLU+iTMFxTz9/R56vraS1389wDdxx1ifcJqM3KLrf+KsRMjPsK3D6Gta/bbqBLOdunvIGplxHsFIoE/F53OAVcCTJuTQrERWfjHfbTvG/C3HOHo6nwAvF2bd0YU2IZeeAlZaVs5zP8bT0NedZY/0YkdKNh+uSuCj1UeQUt3GzdmBmZM60yMyoPIBzo8P6BbB1bWfqA6tORVvfzuyWjmjWwQS+E0IsU0IcX7OXbCU8mTF56eAYIMzaFbsbGEJg99ZwyuLDxDg5cI/R7bC1cmRW2dsZOXB9EtuO3tDEgdO5fL8iJZ4uDjRvWkA86Z25eC/hrLm8b58NTWGcH9P7pyzlVV/uu9VpWwE97oQEFXDr87GtB0Lji5q5bVmVYwuBD2klB2BocD9QoheF39TSilRxeIvhBDThBBxQoi4jIwMg2NqtdXMtUfJyC1i/t1d+fbebkyKDeeHv3UjIsCTqXPieGXxflYeTCchPZd3lh+mb7NABre69L2Fi5MDYf4edGsawPy7uxIZ5MW0udtYsT+tciFSNkFoDDjouRVX5eGnjunc/TWUFpudRrsOhv5mSymPV1ymAz8AXYA0IUR9gIrLy741k1LOkFJGSymjAwMDjYyp1VJZ+cV8tjaRoa3rEdvE/4/rg+q48fU9sQxsEcxn644yZdZWBry1huKycl66sRXiKufo1vV04aupXWlR35t7v9zGhoTTVw+RfxoyD+vxgcpqP1GtKUhYZnYS7ToYVgiEEJ5CCO/znwODgHjgJ2Byxc0mAwuNyqBZt49XH6GgpIxHBv61S8bL1YmPb+/E7hcHMW9qDA8PiOK9ce1p5O95zcf18XBm7l0xRAR4cs8X29h/8uyVb3xss7rU4wOV06QfeAbCrvlmJ9Gug5EtgmBgnRBiF7AF+EVK+SvwKjBQCHEYGFDxtaZdIu1sIXM2JDGqQ0Mig72veDtPVzUW8OCASIa0rvwcfx93Z2ZP6YKnqxNTZm3lRPa5y98wZSM4uqotl7Vrc3SCNmPh4K96TYEVMawQSCkTpZTtKj5aSSlfrrg+U0rZX0oZKaUcIKXUvy12IKeg5Lpu//7vhykrlzzU37gB2ga+7sy+szP5RaXcMWsLp/MuM7U0ZZMqAk6uhuWwOe3GQXkJ7P3e7CRaJenRL81wK/an0fHfy9iadGnNzzlXwosL4zlw6tKumVUH01mw5Ri3dg4lzN/YE8Ca16vDJ7d3IiWrgDEfb+RY1kX76hcXwImdenzgetVrA0GtYNcCs5NolaQLgWa4X/acpKxc8o+f91JefmGS2KtLDjBnYzJjP95IXEWR2Jacxb1fbqNZPW+eHNrcIvm6NQ1g3tQYsvKLueWjDWrMQErKVvwLykvIrR9LTkEJ54prYJWyPRAC2t0KqVsh84jZabRK0IVAM1RZuWTVwQzq+7gRf/ws321LBWBrUhbzt6Rwc8eG+Hu5MvGzzcxar2YA1avjxuwpXajj5myxnJ0a+fHtvbE4CMHID9Yx46U7cNz8IbNKB9Pmy1La/fM3Wr74K7/tPWWxTFatzVgQDrpVYCV0IdAMtfNYNln5xTw9rAWdGtXl9aUHyMov5pnv99DQ151/jWzNt/fG0iTQi3/8vA93F0e+uCuGQG/L98lHBXvzv7914+Ow35kmfmRPvZsRQ17lpRta8dzwFjT0defj1fodbqXUqQ+N+8DuBeosB61WM2OLCc2O/H4gDUcHQe+oQBr5eTBy+npGfbie5MwCZt3RGU9XJzxdnVgwrSsfrjrCLR0bEupn7LjA1TRMX0vDk59C+wm0ufED2ly0iMxBCP65aB+7jmXTLtTXtIxWo91t8P1U+OURGPKqPsehFtMtAs1QK/an0zm8Lj7uzrQL9eWWjiEkZxYwvG19+jYP+uN23m7OPDmkOU2DrjxV1CI2vAc+oXDDu39ZSTwmOgQvVydmb0gyJ5u1aX0zdPs/2DYLPhuoxwtqMV0INMMczz7HgVO59G9+YcuHp4c15+6eEfzjxlYmJruCEzshaS3E3AOOfx2f8HZzZnSnEBbtPkH6VXZA1So4OMKgf8H4BZCdAp/0hoyDZqfSLkMXAs0wvx9Qu4f0a3HhnX+AlyvPDm9JgFctnJe/cTq4eEPHSVe8yeRu4ZSWS+ZtTrFgMCvXbCjcs0atLdjyqdlptMvQhUCrMQnpeXyxKZmCYnWI+e/70wj396BxwLW3fTBdznG1AKrjJHDzueLNIgI86dssiHmbk2vm0Bt7UbcRtLgR9nwDJVdYxa2ZRhcCrUYs3HmcGz9Yx/M/xtP3v6uYtzmZ9Ucy6dc8+KqbwNUaW2aALFfdQtcwpXs4p/OKmbdJtwquS4eJUJgDB34xO4n2J7oQaNVSVFrGCwvjeXDBTlrWr8Onk6Kp7+POsz/EU1xaTv+LuoVqraI8NaDZ4kb1zvUaejQNoE+zQF5ZvJ9NiZkWCGgjwnuCbxjs+MLsJNqf6EKgVcs7yw8zd2MyU3tEMH9aVwa2DOaHv3XjvfEdmNI9nC4RfmZHvLZd89U71dj7K3VzIQTvje9AI38P7vtyGymZBde+k6ZmYbWfCImr4Eyy2Wm0i+hCoFWZlJKfdp6gf/MgnhvREmdH9eskhODGdg148YZWf1xXa0mpBjAbdITQLpW+Wx03Z2ZO7ky5hKlzt5JbeH2b6tmt9rcBAnZ+ZXYS7SK1/H+pVpvtTs3hePY5hrap/PbPtc7RNXD6IHSZdu3b/klEgCcfTujIkYx8nv5+D1Je9rA97WK+odCkrzrOslwPttcWuhBoVbYk/hRODoKBLaz42OktM8DDH1qNqtLduzcN4JGBUSzafZIfdhyv4XA2qsNEyDkGiSvNTqJV0IVAqxIpJUviT9KtaQA+HpbbHK5GZR+Dg4uh4+RqbX9wb+8mdAn344WFe/V4QWU0HwFewbDhA7OTaBV0IdCqZP/JXJIzCxjaup7ZUaou7nN1GX1ntR7G0UHw1q3tEAIe+noHpWV6k7WrcnKFrvepFsGJnWan0dCFQKuiJfEncRAwqKWVdguVFML2OdBsmOq3rqaQuh78+6bWbE/J5pM1iTUQ0MZF3wmudWD9u2Yn0bBAIRBCOAohdgghFlV8HSGE2CyESBBCfC2EcDE6g1bzlsSfIibCH//auFVEZez/CQoyqzRIfCUj2zdkaOt6vP/74Sufgawpbj4QPQX2/QhZunCazRItggeB/Rd9/RrwtpSyKXAGuMsCGbQadDgtl4T0PIa2seJuocO/gWcQRPSq0Yd9dngLpIT/LDlQo49rk7r+DRycYMP7Ziexe4YWAiFECDAcmFnxtQD6Ad9V3GQOcJORGbSalZyZzzvLDwMwuJWVFgIpIXG1KgI1vP1FSF0P7undhJ93nWCzXnV8dd711EH3O+ZBXrrZaeya0QfTvAM8AZzfZN4fyJZSllZ8nQo0NDiDVkWZeUUcSsvj1NlznMwpZPXBDDYfzcJBwB3dwgmuY6UHjaTvh/x0dYKWAe7r3YTv4o7x0s/7WPT3Hjg6WMFeS2bp9iBsn6u2nej5qNlp7JZhhUAIMQJIl1JuE0L0qcL9pwHTAMLCwmo4nXYluYUlLIk/xc+7TrA+4TQXnTVPRIAnjw9uxi0dQ6jnY6VFAODoanXZuLchD+/u4sjTw1rw9/k7eP/3w/y9X6QuBlcS0BQadICDS3QhMJGRLYLuwI1CiGGAG1AHeBfwFUI4VbQKQoDLrsKRUs4AZgBER0frJZsWMmHmZnan5hDm58F9fZoQ2ziA+r5u1KvjhqerjZxsmrga6kaoDdAMMqJtfRbuPME7yw/za/wpnhnWgl5RgYY9n1WLGgqr/gN5GeCl/43MYNgYgZTyaSlliJQyHBgH/C6lnACsBEZX3GwysNCoDNr1OZKRx+7UHB4f3IzVj/fh8cHN6REZQJNAL9spAmWlkLTOsG6h84QQfDqpE9Nv60hBcRmTPt/C3+fvoLhUrzH4i2ZDAAmHl5qdxG6ZsY7gSeARIUQCaszgMxMyaJexfF8aADd1aGgdZwhUxYntUJxrWLfQxYQQDG9bn2WP9OKRgVH8vOsE9365jcISvcfOJeq1hToNVfeQZgqLvM2TUq4CVlV8nghUfptHzWKW70+jZf06NPR1NzuKcRIrxgfCa3ba6NW4Ojnyf/0j8fdy4dkf4rl7bhwfTexEZl4RR0/nU8/Hjeb16lgsT60jBEQNhl1fq4V+1djuQ6saG2nva9WVmVfEtuQzPNAv0uwoxkpcpd6Bevpb/KknxDTCxdGBJ/63m9YvXugGcXIQfH5HZ/seQ4gaqrb8SFoHkQPMTmN3dCHQAFh5MINyiXXvJHotxQWQuqVSx1EaZUx0KIHermw5mkW4vychfu78a9F+7v1yG/Pv7kq7UF/Tspkqohc4e8ChJboQmEDvNaQBanwguI4rrRvacBdFykYoK4aIPqbG6NMsiCeGNGds51C6NQlgzpTO+Hm6MGX2VhIz8kzNZhpnN2jcFw7+qhb8aRalC4FGYUkZaw5n0L+FlRw0X1X7fwJHV2gUa3aSSwTVceOLu2IQwORZW8guKDY7kjmaDYGzqZAWb3YSu6MLgcamxEwKistsu1soNw12zof248HF0+w0fxER4MnMydGcyink0W92UV5uh++KIwcDAnYtMDuJ3bliIRBCLBZChFsuimaW5fvTcHd2JLaJ5QdQLWbzR6pbqNv/mZ3kijqE1eW54S1ZcSDdPrey9g6G9hNg00dwYofZaezK1VoEs4DfhBDPCiGs9Agq7Vp2p2azaPdJekYG4ObsaHYcYxTmwNbPoOVI8G9idpqrmhTbiOFt6/Pf3w7a56Z1g18GryD48W9QaqddZCa4YiGQUn4LdERtDREnhHhMCPHI+Q+LJdQMs3DnccZ8vBFPFyeeGNLM7DjGiZsFRWehx0NmJ7kmIQSv3dKWRn4e/H3+Ds7k29kfQ3dfuOFdSN8Ha94wO43duNYYQTGQD7iidhC9+EOzUuXlktd/PcCDC3bSLsSXhQ90p2mQjf5ISwph04dqS4kGHcxOUylerk68f1sHsvKL+eeifWbHsbyowdDuNlj7pj7K0kKuNkYwBNgJeAAdpZQvSin/cf7DYgm1GlVYUsYD87fz4aojjO8SypdTYwiw1lPGKmP315CXBj0eNjvJdWnVwIe/9W3KDzuOs2J/mtlxLG/IK6p1sO4ts5PYhau1CJ4Fxkgpn5JSFlgqkGac03lFjP90E0viT/HssBa8MqoNLk42PnFs+1wIagkRxu8tVNMe6NuU5vW8eeaHPeScKzE7jmW514Xmw+HISiizs9dugquNEfSUUu61ZBjNOHlFpdzy0Qb2nzzLRxM6cXevxra9ZgAg6ygcj4M2Y2r8JDJLcHFy4I3R7TidV8y/7bGLKHKQGts5ttnsJDbPxt8OaufN2ZBEcmYBn9/RmSGtrfSIyesV/z912foWc3NUQ5sQH6b1asy321LZk5pjdhzLiugNDs7qfGnNULoQ2IHcwhI+XZtIv+ZBdGsSYHYcy4n/HkK6QN1GZieplr/1aYK3mxMfrz5idhTLcqujVoEfXmZ2EpunC4EdmL0+ieyCEh4aYOM7i14sfT+k74U2o69921rO282ZSbGNWBx/0v72IoocpKaSZh8zO4lN04XAxp2taA0MaBFM2xA72tlyz3cgHKDVKLOT1Ig7ukXg4ujADHtbcRw5SF0m6FaBkXQhsHGz1iVxtrDUvloDUkL8d2prY68gs9PUiEBvV8ZGh/K/7amcyik0O47lBESps6V195ChdCGwUWXlkl92n2Tm2kQGtwqmdUMfsyNZzvHtcCYJWlt/t9DFpvVqTLmEz9cfNTuK5QihWgWJq6C0yOw0NsuwQiCEcBNCbBFC7BJC7BVC/KPi+gghxGYhRIIQ4mshhItRGexRebnk27hjDHxrNfd/tZ3AOq48OaS52bEsa8834OgCLW4wO0mNCvXzYETb+szblGxfW09EDoKSAkheb3YSm2Vki6AI6CelbAe0B4YIIboCrwFvSymbAmeAuwzMYFdyC0uY9sU2Hv9uN+4ujnw4oSPLHu5N40Avs6NZzrls2DFPFQF32xsTub9vUwpLy3l96QGzo1hOeE91jsQhPY3UKIYVAqmcn+LgXPEhgX7AdxXXzwFuMiqDPUnMyGPUhxtYeTCdF29oyaK/92BYm/o4OljfQqpq2TYLinOh+4NmJzFEVLA3U7qFM3/LMbannDE7jmW4eKjxnkNL9OllBjF0jEAI4SiE2AmkA8uAI0C2lLK04iapQEMjM9iDhPRcRk5fT2ZeEV/c1YWMQ/rOAAAgAElEQVQp3SNsf9Xw5ZQWqb3sG/eF+u3MTmOYhwZGUa+OG8/+EE9pWbnZcSyj+XA17pNuhyusLcDQQiClLJNStgdCgC5ApTurhRDThBBxQoi4jIwMwzLagreXHQYJPz3Qw74WjP3Z+Q3mbLQ1cJ6XqxMv3tCS/SfPMmdjstlxLKPZMEDAgV/MTmKTLDJrSEqZDawEYgFfIYRTxbdCgONXuM8MKWW0lDI6MDDQEjGt0qG0XBbHn+SO7uGE+nmYHcc85eWw/j2o11ZtOW3jhrSuR59mgbz120H72HrCOxhCOsOBRWYnsUlGzhoKFEL4VnzuDgwE9qMKwvl5fZOBhUZlsAcf/J6Ah7Mjd3aPMDuKuQ4tgczDqjVgB91iQgj+NbI13m7OjPpwPdNXJlBm6+ccNx8OJ3dBTqrZSWyOkS2C+sBKIcRuYCuwTEq5CHgSeEQIkQD4A58ZmMGmJaTn8fPuE9weG05dTzufhbt1JviEQUv7mXsQ6ufBrw/1ZHDreryx9CDjZmwky5anlTYfri4PLDY3hw0yctbQbillByllWyllaynlPyuuT5RSdpFSNpVSjpFS6lUiVfThygTcnByZ2tPOWwOlxZC8EZoPA0ena9/ehvh6uPDB+A68fWs7dqRk8/ayQ2ZHMk5ApFpprLuHapxeWWylkk7n8+PO40zsGmbbJ4xVxokdUHoOGnU3O4kphBCM6hDC2M6hLNiawrEsGz5HqvlwSFoH5+xk6qyF6EJgpeZvScFBCO7u2djsKOZLXqcuG3UzN4fJ/q9fJEII3ll+2Owoxmk+AmSZXlxWw3QhsEJl5ZIfdx6nd1QgQXXczI5jvqT1ENgcPO146ixQz8eNSV0b8cOOVBLSc82OY4wGHcGrHix/CRY+AHGfQ3aK2amsni4EVmjjkUzSzhYxqqNei0dZqTrK0E67hf7svj5NcHd25K2KsYIT2ef4Nf4k2QU2Mojs4AAjp0NQCzVWsOhh+NK2Nhc0g32NrNmI73ek4u3qxIAWwWZHMd+pXVCcB+G6EAD4e7lyV48I3vs9ge6v/s7x7HMAdAn3Y97dMTg72sB7v8gB6kNKWPsm/P4vyDkOPvqNUVXZwG+FfSkoLuXX+FMMa1MfN2dHs+OYL6liR0rdIvjD1F6NiW3sT7tQH168oSXPDW/BlqQs3lh60OxoNUsIiBqiPj+62twsVk63CKzMb3vTKCgu42bdLaQkrwe/JuBdz+wktUYdN2fmT+t6yXXJmQXMWJNIx7C6DGltQ/9WQS3BIwASV0P728xOY7V0i8DKfL/jOA193ekc7md2FPOVl6n1A7pb6JqeG9GCdiE+PP7tLpJO55sdp+Y4OKidSRNX6Z1Jq0EXAiuSnlvIusMZjOrQEAd72176ctL2QlEONOphdpJaz9XJkekTOlIuJR+vPmJ2nJrVuDfknYLTNryYzmC6EFiRrzanUC7hpg523C109gRkHVXv/s6fWKVbBJUSUteD2CYBbErMNDtKzWrcR10m6nGCqtJjBFbiWFYBH606wvA29WkaZEcnjl2svBxmDoSzqeDmCw5O6mBznxCzk1mNro39WL4/jVM5hdTzsZE1KHXDwbeRGjCOmWZ2GqukWwS10MKdx3ns213kFZX+cd0/F+3D0UHw3IgWJiYz2andqgh0uB1ajlQFIPpOs1NZlZgIfwA2H7W1VkFvOLpWjRtp1023CGqZjNwinvshntyiUg6eymXWlM7sTs1m2b40nh7anPo+7mZHNE/CcnXZ/wXwCjI3i5Vq2aAO3q5ObErMYmR7G+pijOgN2+fCiZ0Q0snsNFZHF4Ja5o2lBygsLePFG1ry2q8HGPPxRkrLy2ka5MUUez9zIGG5OoJSF4Eqc3QQdI7ws70WQURvdXl0lS4EVaC7hmqR3anZfLstlSndI5jSPYJ5U2PIzCviWNY5/nljK1yc7PjHdS4bjm2BpgPNTmL1YiL8SMzIJ/1sodlRao5XIAS3hr0/qEWGpXp3++thx39ZahcpJS/9tBd/Txf+3q8pAJ0a+fHj/d35aEJHujW17w3V1DzxMmg6wOwkVq9r4/PjBFkmJ6lh0VPgVDzMHgavhsFPf9drCypJF4JaYuHOE2xPyeaJwc3xdnP+4/rGgV4MbVPfxGS1RMJycPVR59Zq1dKqQR28XJ1sbxpp56nw5FEY9xVEDlRjBnptQaXoQlALFJWW8cbSg7RuWIfRnfRUyL+QEhJWQJM+dncCmRGcHB3o1KjuHy2CwpIyHlqwg5d+2ku5tZ977F5XHV4z5DX19cEl5uaxEkYeXh8qhFgphNgnhNgrhHiw4no/IcQyIcThisu6RmWwFl9vPcbx7HM8Pri5XjF8Oen7IPeEHh+oQV0b+5OQnkdyZj6TP9/CjztPMHtDEs/+GI+0he4Un4ZQry0c+tXsJFbByBZBKfColLIl0BW4XwjREngKWCGljARWVHxtt84Vl/H+7wl0CfejV6SdjwNcyeFl6rJpf3Nz2JCYxmqvqlEfbmBb8hneHdee+/s2Yf6WFP7x8z7bKAbNhqqzKvJtrAvMAIa1s6WUJ4GTFZ/nCiH2Aw2BkUCfipvNAVYBTxqVo7abuzGJjNwipt/WESF0a+ASJYWQeRj2LVQzQuo0MDuRzWjT0AcPF0fyikr5eGInBrQMRkpJUUk5M9cdZc/xHDxcHCktk8Q09uOhAVFmR75+zYbC6tfg8G/QfrzZaWo1i3S4CiHCgQ7AZiC4okgAnALs9nSV3MISPl59hF5RgXSJ0LuJAmplaPz3sOE9SIsHWa6u72237xUM4ezowIcTOuLr4UL7UF8AhBA8O7wFHq5OrD6YTn6R5HReMR/8nsCU7hH4uDtf41Frmfrtwbs+HFqiC8E1GF4IhBBewP+Ah6SUZy9+1yullEKIy7ZBhRDTgGkAYWFhRse0OCklH/yewJmCEh4bZIXvtoyw7yd12tTpQ2qf+Z6PqrOIg1pAoB1vrWGQPs3+ujBPCMEjA6N4ZKD6ndyWnMUtH21k9aEMbmxnZS0yISBqMOz5Tq0rcHI1O1GtZeisISGEM6oIzJNSfl9xdZoQon7F9+sD6Ze7r5RyhpQyWkoZHRgYaGRMi8s5V8IDX+3gkzWJ3NyxIW1DfM2OZL6so/DNJBAOMGY23Lse+j0HbUZDcCu177xmce1D6xLg5cKyfWlmR6maZsPUUaZJ68xOUqsZOWtIAJ8B+6WUb130rZ+AyRWfTwYWGpWhNtqRcoZh765l6d5TPDmkOf8d3c7sSLVDyiZAwuhZ0GqU/sNfSzg6CPo3D2bVgXSKS8vNjnP9InqBk7uePXQNRv5v6w7cDvQTQuys+BgGvAoMFEIcBgZUfG0XTuacY9LnW3BwgG/vjeW+Pk30dNHzUreAax3VFaTVKgNaBpNbVGqd+xM5u0OTvmo9QbkVFjILMXLW0DrgSn/l7G4eYHm55PFvd1NWLvnyrhga+XuaHal2ObYFGnbSLYFaqEfTANycHVi2L42ekVbYTdtmDBxcDHGfQZe7L/2elGoswc7p/3UW8uXmZNYlnObZ4S10Efizoly1aCy0i9lJtMtwd3GkZ2Qgy/elWef6glajoEk/WP4SZB+7cH3c5/BWy0uvs1O6EFhAYkYeryzeT++oQG7rYnszoKrt+DY1TVQXglprYItgTuQUsvfEWbOjXD8hYMQ76t3/oofV5fYv1Oe5J+DICrMTmk4XAoOVl0se+3YXbs6OvD66rV40djnHtqrLhtHm5tCuqF+LIITAemcP1W0EA16EhGXwwz1qZ9Im/cEzsGKign3ThcBg321PZXtKNi+MaElwHRs5I7amHdusBond9TTa2irAy5VOYXX5edcJzuQXmx2najrfDaFdYffXEN4Dxs2DsK6QvMHsZKbThcBAOedKeG3JAaIb1WVUBxs6FrAmlZdD6lbdLWQFpvVqTOqZcwx9dy1brPEsAwcHuHmGWqV+29dqRlFYLGQnw9kTZqczlS4ENehUTuElc63fWX6IrIJiXrqxle4SupLMBCjMhhBdCGq7Qa3q8f3fuuHm7MC4GRt5b8VhSsusbEpm3UbQ9xlwqZiwERarLlM2mpepFtCFoIYs35dGj9d+p88bK5m3OZn44znM3ZjMbV3CaN3Qx+x4tce5bPjlMbWSGFS3EOgWgZVo3dCHn//egxvaNeCtZYe45aMNJKTnmh2r6uq1BWdPux8n0IWgBqxPOM3fvtpO8/re1PNx49kf4rnhg3V4uznx2KBmZserXfb/DFs/hdkj4EySWkjm5gP+kWYn0yrJ282Zd8d14IPbOpCSVcCw99bx6ZpE65xa6ugEoZ0h2b5bBPq4p2ralnyGu+fGEeHvyZd3xeDj7szaw6f5bN1RxkSHUNfTxeyItUvKRnXkZHEezL5BXRfSRS8ks0Ij2jYgJsKfZ37Yw8uL9+Pi5MDkbuFmx7p+YbGw6lUozFFvSuyQ/t9XDSeyzzFl1haCvF354q4u+Hq4IISgV1Qgc+7swoi2VrZboyWkbISInjDpR/UfLydFdwtZsUBvVz6Z2In+zYP416J9bLbGc5DDYgGpVrfbKV0IqkhKyQsL4ykpk8y5swtBemroteWmQVaimrLXoANM+kEdRt9ypNnJtGpwcBC8Pa49YX4e3P/Vdk5knzM70vUJiQYHJ7ueRqoLQRX9Gn+K5fvTeXhgpN4yorLOz8wI66YuG3aCqcshUI+jWLs6bs7MmNSJwpJy7vtym3XtVOriCfXb2fWAsS4EVXC2sIQXf9pLy/p1uLN7hNlxrEfKRnD2gPptzU6iGaBpkDevj27LrtQc5m9JMTvO9QmLVVudlBaZncQUuhBUgpSSHSln2J2aTdLpfP6z+ACn84p49ZY2ODnqf8JKS9momuGOVnbkoVZpQ1vXI7axP++tOExeUanZcSovLBbKiiBxtdlJTKFnDVXC99uP8+i3uy65bkr3cH2y2PUoPAun9kCvx81OohlICMGTQ5tz0/T1fLomkYcHWskxrE37g28Y/PacOr/Azt6s6EJwDYUlZbz520FaN6zDg/2jyC0sQQgY2rq+2dGsS+pWtcPo+ZWcms1qH+rLsDb1mLk2kYldGxHobQVnBTu7w9DXYf442PQhdH/Q7EQWpfs1rmHOhiRO5BTyzLAWDGwZzM0dQxjVIQQ3Z0ezo1mXlI0gHFXXkGbzHhvUjMLScj74/bDZUSqv2VCIGgqrXoOc42ansSjdIriK7IJipq9MoE+zQLo1CTA7jnVL2QT12oCrt9lJNAtoHOjFrZ1D+XJzCsv3p1NaXo6TgwO3dg5las8IPFxq6Z+eoa/C9Bj47VkYM9vsNBZj2E9DCPE5MAJIl1K2rrjOD/gaCAeSgLFSyjNGZaiu6SsTyC0q5amh+hzd63ZyN6x5XZ0MFTVUdQ1F32l2Ks2CHhkYRVmZpLRc4uQgSMst5K1lh5i3OZlHBzVjdMeQ2ndmd91w6PkorHwZTsWDdz3wrg+d7oDw7manM4wwan8QIUQvIA+Ye1EheB3IklK+KoR4CqgrpXzyWo8VHR0t4+LiDMl5seLScuKSskg9c47U7HN8vOoIN7ZvwH/HtDP8uW2KlDBraMW8bIk6ulrC2Ll68Zidi0vK4t+/7GfnsWyeGtqce3s3MTvSX5UWwdo3IeMA5KXD6cNQcBo6ToKB/wT3umYnrDQhxDYp5TX7Yw0rBBUhwoFFFxWCg0AfKeVJIUR9YJWU8pqriSxRCA6eyuXhr3ey76Q6ik8IiAzyYs6dXajv427oc9ucw8tg3mgY/qbaR2jv95C+X+0Fb6d7uWgXSCm5e+42Nhw5zYpHe9f+/1/F+Wovoo3TwcMfxn2lNqqzArW1EGRLKX0rPhfAmfNfX42RhaCsXPLZukT+u/QQ3m5OPD+iJZ0a1SW4jhsuTnos/bqVl8OMXupA+vu3gpPedE/7q2NZBfR/azWDW9Xj/fEdzI5TOSd3w/zx4OEH01ZbxUaJlS0Epr0SqSrQFauQEGKaECJOCBGXkZFhWI7pKxN4ZfEBejcLZOnDvbipQ0NC/Tx0EaiqfT+q9QJ9ntFFQLuiUD8P7uvdhJ93nWDjESvZqK5+W+j/ApzarX7PbYil/9qlVXQJUXGZfqUbSilnSCmjpZTRgYGBhoTJKypl5tpEBrQIZsbtnQjwsoL5zrVBcT7knvrr9WWlapAtqCW0GW35XJpVua9PE0LquvPST3spsZaTztqMhsAW6ve8zIpWTl+DpQvBT8Dkis8nAwst/PyXmLcpmbOFpTzQr6k+SrKyCrJg5kB4py1s+kh1BYHaUnrxo+royX7PgYNeZ6FdnZuzI8+PaMnBtFxu+WgDX25KJqegBFBdtjnnSigvr2WH3Tg4qt/vzATYNd/sNDXGyFlD84E+QACQBrwI/Ah8A4QByajpo9c8BduIMYLCkjJ6vr6SqGAv5k3tWqOPbbOKcmHuSNX1ExoDSWuhcR9oPgJWvwb5p6HLNBj6mhpt17RrkFIyb3MKczcmcSgtDxdHB9ycHcgtKkVKmBATxsuj2pgd81JSwsz+alv1/9sOTrW3J6GyYwSGrSOQUo6/wrf6G/Wc1+O7balk5Bbxzq3tzY5iHUoK1UDZiZ1w6xfQbBhsmw1Ln4HEVaowTPgOGuh/T63yhBBM7NqICTFhxB8/y8+7T1BUUoaPhwv7Tpxl/pYU7ugWTmRwLVqIKIQaK5g7Elb9B/q/aPVvfGrp8r6aty05i81Hs+gTFURUsBefrDlCu1BfujXxNzuadVjyhGoBjJoBzYer66KnqBbB6UMQOcjq/zNo5hFC0CbEhzYhF6YXZ+UX0/v1lby+9CCfTqplW5M07gPtJ8C6t1VLeMTbVr1RnV0UgryiUu77cjvpuUW8/utB6no4c6aghOeGt9RjA5VRkAW7FkD0XdDu1ku/5xehPjSthvl5unBvnya8sfQgcUlZRIf7mR3pUiOnQ52GagV9drJaMGlFi80uZhdzJD/4PYH03CI+mxzN67e0pXO4H0Nb12Ngi2Czo1mH3d+ovdqjp5idRLMzU7qHE+TtyqtLDmDkmqcqEQL6PQs3fQzJG+GLUVCUZ3aqKrH5FkFiRh6frUtkdKcQ+lf84R/bOdTkVFZEStg+Bxp0VJvGaZoFebg48dCAKJ75YQ/L9qUxqFU9syP9Vfvx4O4LC26DbybBbV9bXTeRzbcI/rVoH65OjjwxRJ+LWyWpcZC+DzpNvvZtNc0AY6NDaBrkxfML40nPLTQ7zuU1Gwoj3oEjK2DhA+oNlBWx6UKwYn8aKw9m8NCASIK83cyOY522zwFnT2h9i9lJNDvl5OjA++M7cPZcKQ/M21F7F591mgx9n4XdC2DZC2anuS42XQg+Xn2EpkFeTO4WbnYU61SUC/HfQ+ub9TkCmqla1K/Dq7e0YUtSFi//sv+P6zPzijhbWGJisj/p9biaVLHhPVj/rtlpKs2mxwg+v6Mzp3IKcdYHzFfNnu+gJF/txa5pJhvZviG7U3P4bN1RjmUVkJCRR3JmAVHBXix9qFeVZgBKKWt25qAQMOwNOHdGtQrc66rtq3OOw8554OwB3R6oueerITZdCLzdnPF2s65Bm1rh7Al1bmvcLAhqBQ07mZ1I0wB4emhzEtLz2H08h45hvnQKq8v3O46zMTGz0qcISimJSz7DZ2uPsv7Iad4c065mB6EdHGHUJ2rblZ8fhPj/wdE16sxugPrtIKJnzT1fDTB0G+qaYqmDaexeWSksex62fAqyDFrdDH2fAf9aeHiIpqG2iun6nxV0bxLA9Akdr3n7fSfO8tT3u9mdmoOvhzP+ni4kZxbw9q3tuaFdg5oNV5wPX96i9iXqMBHa3gpf3QpObnDvOovszmv6FhOalSkphP/dBQcWqaZsz0fVsX2aVou5OTsyplMIs9YnkZ5beNVJIfHHc5j42WZcnRz4902tuaVjCKXl5dw1O44HF+ygqLSc0Z1Cai6ciyfcsVh9fv7sgmH/ha/GwKbp0OPhmnuuatKFQFODwgtuU83XIa9B13vNTqRplTa+Sxifrj3Kt3Gp3N+3KaAOvtl8NIvO4XVp5O/5RxHwdHFi/t1dCfP3qLi3I3Pu7MK0L+J47NtdRAR40qlRDa4O/vPhNVGDKjZpfF3NxBOO6s3XqT3q9D73uhAQBS1usOiWLbpryN4VF8DcG+H4drjpQ2g3zuxEmnbdJszcRNLpAtY80Zf44zncMWsLZyq2tI4I8CQrvxgvVycWTOtKqJ/HX+5fUFxKzMsrGNgqmLfGXn7jxOTMfO7/ajv39GpSvW6k7GMwvQs4u0NBxaE8HgFQUqA+AIa+ATHTqv4cFWr9CWWaCdL2qT/855WXw4/3qkVjY2brIqBZrQkxjTiefY43lh7ktk834eWm/ui/dENLwv09aFbP+4pFANQK5hvaN2DxnpPkXmY6auqZAm77dDPxx8/y9rJD1TsnwTcUhvwH/JpAv+fVka5PHIFnT8KzaWpn36VPQ9L6qj/HddItAnux8yv48T71y3fTRxAWAyv+BWv/C4NerpVT2jStskrKyun26u9k5BbRLNibuXd1IbjO9S0i3Xksm5umr+eVUW24LSbsj+tP5pxj7CcbySkoYXxMGJ+sTmTOnV3oHWXMyYkU5sCn/aEwG6atAp+qj1voFkF1lZerfjtLFcry8qoffScl5KVfOevhZWrZe2gMlJfA54NhwQRVBDpOhtj7q55b02oBZ0cHHh0YxeBWwXx9T9frLgIA7UJ8iAr24pu4Y39cdya/mNs+3cyZ/BLm3hXDowObEeDlyuz1R2sse3m5JCWzgNN5RRSVlqmxgnFfqQkcX9+uLg2mB4uvZMO7sPwlaDkSbnxf/XBA7S6YtA6aDgDHGvzn++kBdSj23auu73FTNqmFK8c2qz/03R+CqCEXBqlSt6mNsIJbqYNjhIDfnodtsyC8Jwx/U58joNmEcV3CGNcl7No3vAIhBGOjQ/n3L/s5lJZLRIAn983bxvHsc3w1NYb2ob4A3BYTxvu/HybpdD7hAZ6XPEZOQQnTvojjSEYe7UJ8aR/qy/C29Wkc6HXZ58wvKuW+edtZcyjjj+vC/DxYMK0rDW7+BBber877qN+2yq+rMnTX0OXkn4b3OoBXEGQdVU2z4W+qArBtlmq6DX8LOt9VM89XkAVvNoOy4r8+bnEB5J7861z+vAy1WOXgL+BVT50TEP8D5KRA3Qjw8FP3zU4Br0C4a5l6PeelH4C6jdSAlaZpgNqyIuaVFdzRLZyi0nK+2JTMW2PbcXPHC90z6WcL6fbq70yKDeeFG1r+cX12QTETP9vMoVN5DG5dj30ncjiSkU+AlwsrHu2Dj/uli1tP5xVx5+yt7D1xlgf7R+Lr4Ux2QQkfrTpC5wg/5kzpjCg6e+FNaBXU6nUEQoghwLuAIzBTSvmq4U9aXqb+0FbmD9/q19RikHFfqT/6390J80aDcIAWN6p37ru/qblCsOdblc2viTr6ru1YtbdPabFakJK6BSb/DI26XXgt302B1K3qIO2uf1Nzlvs9D3t/UIfIANRpAKGdoccjlxYBgKDmNZNd02yIv5crA1oEM3djMsVl5dzTq/ElRQAgqI4bw9rU59u4Yzw6KApPVyeyC4qZMHMzh9Py+OT2TvRtrv6/7UnNYeT0dbz520H+ObL1H4+RklnA7Z9vJu1sITNu7/THFvkAvh7OvLBwL19vPVatFs71sHghEEI4AtOBgUAqsFUI8ZOUcp9hTyqlOm/35E6YsuTqK2VPH4a4z9X+OoEVW1ffs0bN9Y3opRZZrX0LVvxDtRaudDpXeZkqHJXpdtnxBdRvr1oDM/upzar6PaeOh0zZAJ6B8O0dKod3PfX8SWvVCUkdJl54HEdnVUTajq3kP4ymaX82tnMIv+49Rb/mQTwx5PJvmCZ3C+enXScY/t5ayqVqSZSUS2ZM6kSfZhfedLUJ8WFSbDhzNiYxplMobUJ8SM7MZ9yMTZwrKWPe1K5/WbcwMaYRS/ac4t+/7KdnVCANfY1vtZsxWNwFSJBSJkopi4EFwEhDn3HbLDi8FM5lqwOns49d+bbLX1JLwPs8deE6Dz+12vb8Sts2Y9Tlnu/+ev9zZ+D3f8OrjVSxuJiUsOQpWP3GhetO7lKD0h0mQkgntchkwwew8hWVu/tDMGkhFJ6Fb6eoRV+rXoE2Y9WZqZqm1ai+zYKYdUdn3h/fAUeHy7+R6xjmyx3dwmkc6EXHMF9u6RTCvKkxlxSB8x4ZFIW/pyvP/biHpNP5jK8oAl9dpggAODgIXh/dFiklT3632yIns1l8jEAIMRoYIqWcWvH17UCMlPKK8xerNUaQdRQ+6q66SAb8A+bcoLpJJv4P0vfDoaWQFq/evSPg2Cb1brzX41d/3FnDIS8NHtiq3vVLCevegnXvQNFZVTSyj8E9qy+c7BX/verSATUA3XESLH4cts2Bxw6qVYVnkuCDzqqrKHIwjJ+vNrHa/Q18fzc4OIFvmGod6K2hNc0qLNx5nAcX7MTDxRFnRwe+ujuGVg2u3vf/5aZkXlgYz//u60aHsKqtdrb66aNCiGlCiDghRFxGRsa173A55eVq1N3BEW78ABq0h9u+UVvCvtsO5o9T/fNOburDwQnajoOulZhO2XYsZB6GE9vV12v+Cyv+CeE94N71cPdK9Yd90SMqR0GW6upp0AGa9FPXJ65Wf+Bb3HDh0Ou64Wqjt7BYuOVTlf3888XcBw7OMHqWLgKaZkVubNeAHk0DcHZ0YN7UaxcBgAkxYSx5sFeVi8D1MKNFEAu8JKUcXPH10wBSyv9c6T5VbhFs/FCt0PtzX3rSOtUSaNJPDcA6uV7/Y5/Lhv9GqQPdw2Lh28mqiIz6+MK4wPlFXDe+DymbYdd81ULwCYFP+6kWQ3kJ3P4jNOl77eeUEorzdBHQNCtUWFJGUUk5Ph6W2xq/si0CMwqBE3AI6A8cB7YCt0kp917pPlUuBN9PU3tVE9MAAAYBSURBVLN+xi8wZq78N5MgcZWa3VOvjZrZ43zRQhYpYdYwNcuoOE/N3hnwovpe+gGYOUC1BB7c9dfNqTRN06qp1k4flVKWCiEeAJaipo9+frUiUC2jPoHSQuMWTLW9FfYtBJ9QGDfv0iIA6nlHvAUf91BTQ3s/ceF7Qc1h6nJ1G10ENE0zkSnrCKSUi4HFhj+REMYumIocBL2fVDN9/jxP/7ygFjDpJ/Bp+Ncsei6/pmm1gN5iojocndXA7rWEdzc+i6ZpWhXpPglN0zQ7pwuBpmmandOFQNM0zc7pQqBpmmbndCHQNE2zc7oQaJqm2TldCDRN0+ycLgSapml2ziqOqhRCZADJVbx7AHC6BuNYC3t83fb4msE+X7d+zZXTSEoZeK0bWUUhqA4hRFxlNl2yNfb4uu3xNYN9vm79mmuW7hrSNE2zc7oQaJqm2Tl7KAQzzA5gEnt83fb4msE+X7d+zTXI5scINE3TtKuzhxaBpmmadhU2XQiEEEOEEAeFEAlCiKfMzmMEIUSoEGKlEGKfEGKvEOLBiuv9hBDLhBCHKy6NPwHbwoQQjkKIHUKIRRVfRwghNlf8vL8WQriYnbGmCSF8hRDfCSEOCCH2CyFibf1nLYR4uOJ3O14IMV8I4WaLP2shxOdCiHQhRPxF1132ZyuU9ype/24hRMfqPLfNFgIhhCMwHRgKtATGCyFampvKEKXAo1LKlkBX4P6K1/kUsEJKGQmsqPja1jwI7L/o69eAt6WUTYEzwF2mpDLWu8CvUsrmQDvU67fZn7UQoiHwf0C0lLI16njbcdjmz3o2MORP113pZzsUiKz4mAZ8VJ0nttlCAHQBEqSUiVLKYmABMNLkTDVOSnlSSrm94vNc1B+GhqjXOqfiZnP4//buJTSqK47j+PcPUakKGrsQNUIsFCm4iF0Jioragg+0i+4KdVHc60KhuHInKOJKQXyApXRRFRu6EHxBV74CYkstPlCSiC8oKrhpij8X5wSGyKAzyXjJub8PDJlz7oX5H/5h/nPPnDkXvqkmws6IiB5gI3A0twNYA5zKp5Q45lnASuAYgKT/JL2g8FyT7qT4SUR0AdOBxxSYa0l/AP+O6W6W2y3ASSVXgNkRMa/d1y65ECwAhhraw7mvWBHRCywFrgJzJT3Oh54AcysKq1MOAruAN7n9KfBC0v+5XWK+FwHPgRN5SuxoRMyg4FxLegTsBwZJBeAlMED5uR7VLLcT+v5WciGolYiYCZwGtkt61XhMaWlYMcvDImIT8EzSQNWxfGRdwJfAYUlLgdeMmQYqMNfdpE+/i4D5wAzenT6phU7mtuRC8AhY2NDuyX3FiYgppCLws6Qzufvp6KVi/vusqvg6YDmwOSIekqb81pDmzmfn6QMoM9/DwLCkq7l9ilQYSs71OuCBpOeSRoAzpPyXnutRzXI7oe9vJReC68DneXXBVNIXTP0VxzTh8tz4MeC2pAMNh/qBrfn5VuC3jx1bp0j6UVKPpF5SXi9J+g64DHybTytqzACSngBDEbE4d60F/qbgXJOmhJZFxPT8vz465qJz3aBZbvuB7/PqoWXAy4YppNZJKvYBbADuAPeB3VXH06ExriBdLt4CbubHBtKc+UXgLnABmFN1rB0a/2rg9/z8M+AacA/4FZhWdXwdGG8fcCPn+yzQXXqugT3AP8BfwE/AtBJzDfxC+h5khHT190Oz3AJBWhV5H/iTtKqq7df2L4vNzGqu5KkhMzP7AC4EZmY150JgZlZzLgRmZjXnQmBmVnMuBGYtyju+PoiIObndndu91UZm1h4XArMWSRoi7fa4N3ftBY5IelhZUGbj4N8RmLUhb+sxABwHtgF9SlsgmE06Xe8/xczGkjQSETuBc8DXLgI2mXlqyKx960lbAiypOhCz8XAhMGtDRPQBX5HuCrdjPDcFMauaC4FZi/IumIdJ934YBPaRbp5iNim5EJi1bhswKOl8bh8CvoiIVRXGZNY2rxoyM6s5XxGYmdWcC4GZWc25EJiZ1ZwLgZlZzbkQmJnVnAuBmVnNuRCYmdWcC4GZWc29BSnkUyGOU3PgAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.arange(0,100,1.0) # a dummy x axis\n",
    "ref1 = 50.0*np.exp(-1/2*((x-40)/20)**2) + np.random.randn(len(x)) # a gaussian with added noise\n",
    "ref2 = 70.0*np.exp(-1/2*((x-60)/15)**2) + np.random.randn(len(x)) # a gaussian with added noise\n",
    "plt.figure()\n",
    "plt.plot(x,ref1,label=\"ref1\")\n",
    "plt.plot(x,ref2,label=\"ref2\")\n",
    "plt.xlabel(\"X\")\n",
    "plt.ylabel(\"Y\")\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now create 4 intermediate $obs$ signals, with $F1$ = 20%,40%,60% and 80% of ref1."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'Observed signals')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "F1_true = np.array([0.80,0.60,0.40,0.20])\n",
    "obs = np.dot(ref1.reshape(-1,1),F1_true.reshape(1,-1)) + np.dot(ref2.reshape(-1,1),(1-F1_true.reshape(1,-1)))\n",
    "plt.figure()\n",
    "plt.plot(x,obs)\n",
    "plt.xlabel(\"X\")\n",
    "plt.ylabel(\"Y\")\n",
    "plt.title(\"Observed signals\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can use rp.mixing_sp() to retrieve $F1$.\n",
    "\n",
    "We suppose here that we have some knowledge of $ref1$ and $ref2$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "module 'cvxpy' has no attribute 'sum_entries'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-5-4fdf72487487>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mF1_meas\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmixing_sp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mref1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mref2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mF1_true\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mF1_meas\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'ro'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Measurements\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'k-'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"1:1 line\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxlabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"True $F1$ value\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/py36/py36/lib/python3.6/site-packages/rampy/mixing.py\u001b[0m in \u001b[0;36mmixing_sp\u001b[0;34m(y_fit, ref1, ref2)\u001b[0m\n\u001b[1;32m     29\u001b[0m     \u001b[0mF1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcvxpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mVariable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_fit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 31\u001b[0;31m     \u001b[0mobjective\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcvxpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMinimize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcvxpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum_entries\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcvxpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mF1\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mref1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mF1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mref2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_fit\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     32\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     33\u001b[0m     \u001b[0mconstraints\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0mF1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mF1\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mAttributeError\u001b[0m: module 'cvxpy' has no attribute 'sum_entries'"
     ]
    }
   ],
   "source": [
    "F1_meas = rp.mixing_sp(obs,ref1,ref2)\n",
    "plt.figure()\n",
    "plt.plot(F1_true,F1_meas,'ro',label=\"Measurements\")\n",
    "plt.plot([0,1],[0,1],'k-',label=\"1:1 line\")\n",
    "plt.xlabel(\"True $F1$ value\")\n",
    "plt.ylabel(\"Determined $F1$ value\")\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
